package com.lncg.mapper;

import com.lncg.entity.DeviceReceiveData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 设备接收数据Mapper接口
 */
@Mapper
public interface DeviceReceiveDataMapper {
    
    /**
     * 根据IMEI查询设备数据
     * @param imei 设备IMEI
     * @return 设备数据
     */
    DeviceReceiveData findByImei(@Param("imei") String imei);
    
    /**
     * 插入设备数据到主表
     * @param deviceData 设备数据
     * @return 影响行数
     */
    int insert(DeviceReceiveData deviceData);
    
    /**
     * 更新设备数据
     * @param deviceData 设备数据
     * @return 影响行数
     */
    int updateByImei(DeviceReceiveData deviceData);
    
    /**
     * 插入设备数据到历史表
     * @param deviceData 设备数据
     * @return 影响行数
     */
    int insertToHistory(DeviceReceiveData deviceData);
    
    /**
     * 查询所有设备数据
     * @return 设备数据列表
     */
    List<DeviceReceiveData> findAll();
    
    /**
     * 根据ID查询设备数据
     * @param id 设备数据ID
     * @return 设备数据
     */
    DeviceReceiveData findById(@Param("id") Long id);
    
    /**
     * UPSERT操作：插入或更新设备数据（基于IMEI）
     * @param deviceData 设备数据
     * @return 影响行数
     */
    int upsertByImei(DeviceReceiveData deviceData);
}
